package chapter08.s02threaddispatch;

/**
 * 线程休眠 Thread.sleep
 *
 * 当前正在执行的线程暂停一段时间，进入休眠等待状态
 * sleep()是静态方法，只能控制当前正在运行的线程休眠，而不能控制其他线程休眠。
 * 当休眠时间结束后，线程就会返回到就绪状态，而不是立即开始运行。
 */
public class Example07 {
    public static void main(String[] args) throws Exception {
        // 创建一个线程
        new Thread(new SleepThread()).start();
        for (int i = 1; i <= 10; i++) {
            if (i == 5) {
                Thread.sleep(2000);  // 当前线程休眠2秒
            }
            System.out.println("主线程正在输出:" + i);
            Thread.sleep(500); // 当前线程休眠500毫秒
        }
    }
}

// 定义SleepThread类实现Runnable接口
class SleepThread implements Runnable {
    public void run() {
        for (int i = 1; i <= 10; i++) {
            if (i == 3) {
                try {
                    Thread.sleep(2000); // 当前线程休眠2秒
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            System.out.println("SleepThread线程正在输出:" + i);
            try {
                Thread.sleep(500); // 当前线程休眠500毫秒
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}
